/*
* Copyright (c) 2024 Hunan OpenValley Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#ifndef IOT_CONNECT_SERVICE_H
#define IOT_CONNECT_SERVICE_H
#include "ipc_skeleton.h"
#include "system_ability.h"
#include "iot_connect_stub.h"


namespace OHOS {
namespace iotConnect {

class iot_connectService : public SystemAbility, public iot_connectStub {
public:
    DECLARE_SYSTEM_ABILITY(iot_connectService);
    DISALLOW_COPY_AND_MOVE(iot_connectService);
    explicit iot_connectService(int32_t systemAbilityId, bool runOnCreate = true);
    ~iot_connectService() override;

    void OnStart() override;
    void OnStop() override;

protected:
    void OnAddSystemAbility(int32_t systemAbilityId, const std::string& networkID) override;
    void OnRemoveSystemAbility(int32_t systemAbilityId, const std::string& networkID) override;
private:
    iot_connectService():iot_connectService(0) {};
};

}
}


#endif